package com.gree.flowable.app.services;

import com.gree.flowable.app.pojo.vo.ReturnVO;

import java.util.List;
import java.util.Map;

/**
 * @author ：180849
 * @date ：Created in 2021/4/14 9:07
 * @description：表单与模型关系业务
 * @modified By：
 * @version: 1.0
 */
public interface IFlwFormNodeSetService {
    /**
     * 添加表单与模型关系
     * @param processKey    流程关键字
     * @param formId        表单id
     * @return
     */
    ReturnVO addFormNode(String processKey, String formId);

    /**
     * 根据流程关键字更新整个表单关系
     * @param processKey    流程关键字
     * @param formId        表单id
     * @return
     */
    ReturnVO updateFormNode(String processKey, String formId);

    /**
     * 解除模型与表单关系
     * @param processKey    流程关键字
     * @param formId        表单id
     * @return
     */
    ReturnVO deleteFormNode(String processKey, String formId);

    /**
     * 查询各个表单项的状态
     * @param processKey    流程关键字
     * @param elementId     流程节点
     * @param formType      表单类型
     * @return
     */
    ReturnVO queryByProcessAndNode(String processKey, String elementId, Integer formType);

    /**
     * 更新表单在流程中某个节点的表单项显示状态
     * @param processKey    流程关键字
     * @param elementId     节点id
     * @param formId        表单Id
     * @param fieldList     字段状态
     * @return
     */
    ReturnVO updateFieldNodeState(String processKey, String elementId, String formId, List<Map<String, Object>> fieldList);

    ReturnVO getInfoByProcessKeyAndType(String processKey, Integer formType);
}
